package com.tan.user.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tan.common.domain.user.SysDict;
import com.tan.common.dto.user.DictCreateDTO;
import com.tan.common.dto.user.DictUpdateDTO;
import com.tan.common.query.user.DictQuery;
import com.tan.common.vo.user.DictMapVO;
import com.tan.common.vo.user.DictVO;

import java.util.List;

/**
 * @author Tan-Bowen
 * @description
 * @date 2025/2/19 11:13
 */
public interface ISysDictService {
    /**
     * @param [dictCreateDTO]
     * @author Tan-Bowen
     * @description 添加字典
     * @date 2025/2/19 11:35
     */
    void createDict(DictCreateDTO dictCreateDTO);

    /**
     * @param [DictUpdateDTO]
     * @author Tan-Bowen
     * @description 修改字典
     * @date 2025/2/19 11:36
     */
    void updateDict(DictUpdateDTO DictUpdateDTO);

    /**
     * @param []
     * @author Tan-Bowen
     * @description 全部字典
     * @date 2025/2/19 11:36
     */
    List<SysDict> dictAll();

    /**
     * @param []
     * @author Tan-Bowen
     * @description 全部字典
     * @date 2025/2/19 11:37
     */
    List<DictVO> dictVOS();

    /**
     * @author Tan-Bowen
     * @description 字典数据
     * @date 2025/2/21 17:17
     * @param []
     */
    List<DictMapVO> dictMap();

    /**
     * @param [typeCode]
     * @author Tan-Bowen
     * @description 根据typeCode获取字典
     * @date 2025/2/19 11:37
     */
    List<DictVO> getDict(String typeCode);

    /**
     * @param [query]
     * @author Tan-Bowen
     * @description 字典分页
     * @date 2025/2/19 11:37
     */
    IPage<DictVO> DictPages(DictQuery query);

    /**
     * @param [dictId]
     * @author Tan-Bowen
     * @description 删除字典
     * @date 2025/2/20 10:45
     */
    void delDict(Long dictId);
}
